1. Field of the Invention
The invention relates to circuit boards used in computer systems, and more particularly to circuit boards which can utilize two widths of data and methods for determining the allowable data width which can be passed by the circuit board.
2. Description of the Prior Art
Personal computers are becoming more widely used and more powerful at an increasingly fast rate. Original personal computer designs were based on an 8 bit microprocessor and had very limited amounts of memory and data storage capabilities. While these units were quite adequate, and considered advanced, for their time, the rush of technology soon provided more capable equipment and devices. Some of these more capable devices were incorporated by International Business Machines Corporation into the IBM PC. The IBM PC utilized the Intel Corporation 8088 microprocessor, which operated with a 16 bit word internally and transferred information over an 8 bit external data bus. Mass storage devices utilized in the original IBM PC usually consisted of floppy disk units capable of holding hundreds of kilobytes of data. Technology proceeded to advance and hard disk units capable of holding megabytes of data were soon available. IBM integrated these hard disk units into the PC and introduced a new model called the PC/XT. However, the PC/XT still utilized the Intel 8088 microprocessor and its 8 bit data path.
Device costs continued to fall and performance continued to increase. Further, applications programs became significantly more sophisticated and approached the limits of the IBM PC design. Additionally, Intel introduced the 80286 microprocessor, which had greatly expanded capabilities, including additional memory addressing and higher clock rates. This microprocessor was utilized by IBM in the IBM AT. This unit and units compatible with it satisfied the demand for personal computing power for a period of time, but again the electronics and computer industries proceeded to advance and introduce more powerful components. Applications programs became even larger and more complicated and thereby needed the greater power which was available.
Intel introduced the 80386 microprocessor, which utilized a 32 bit data word and a 32 bit data path to allow extreme performance improvement. A number of manufacturers developed personal computers utilizing this microprocessor, but in general these computers utilized the existing bus structure and characteristics of the IBM AT for use with interchangeable circuit boards. The use of interchangeable circuit boards had been developed to allow simple and easy changes and customization in the functionality of a given personal computer system. The bussing structure had originally been based on an 8 bit bus as developed in the IBM PC, but this was extended to include portions having a 16 bit data path as used in the IBM AT.
As higher performance circuit boards developed, it was considered desirable to be able to utilize the 16 bit data path provided in the IBM AT and compatible machines to obtain maximum performance. However, it was also considered preferable to be able to operate on the 8 bit bus or data path of the IBM PC. Therefore, circuit boards were developed which could operate using either the 8 or 16 bit data paths and associated interface protocols, but selection of the data path width could only be accomplished by means of properly setting switches or jumpers.
This jumper setup could be dramatically complicated if the circuit board was designed to operate in the memory address space which included the peripheral device memory segment or option memory, as defined by the operating system developed by Microsoft Corporation for the IBM PC and compatible units. A block of 128 kbytes is available for the option memory, generally read only memories (ROM's). The block size in the option memory area is 2 kbytes, so that up to 64 devices or options can use the area. As defined by the architecture of the IBM AT, the minimum address block size that can be readily interpreted by a 16 bit device is 128 kbytes, which is the entire option memory area. When a 16 bit device responds to a memory request a signal is lowered to indicate the size of data word. The response signal, referred to as M16-, must be issued before certain lower address lines are available for a smaller memory size block decoding to be performed. The M16- signal causes the bus controller to utilize the 16 bit data paths and only do one operation if 16 bits of data are being transferred. If an 8 bit device actually responds because of address decode problems, erroneous data is received because the upper 8 bits of the data bus are not driven. Thus it is critical that there not be a conflict between data widths of devices operating within a 128 kbyte memory block.
Because it is expected that a great number of different devices will be operating in the 128 kbyte option area, properly adjusting a circuit board having the 8 or 16 bit capability to be used in this area is dramatically complicated. To properly set the switches or jumpers on the board the user must first determine the data path operating widths of all of the boards operating in the 128 kbyte memory block in which the dual width circuit board will be operating. This may not overly difficult for an extremely skilled system integrator, but it is an extremely difficult or impossible task for a relatively unskilled user, who are becoming much more prevalent as the price of personal computers drops and their use expands. Thus, the task of properly setting the data width on the circuit board has become very complicated and is often resolved merely by trial and error. This does not necessary result in an optimal solution wherein the board runs at the optimum rate or maximum rate possible and may take a great deal of time.